<HTML><HEAD><TITLE>struct zn_options(solver, fzn_tmp, parser, setup_prio, solutions, var_names)</TITLE>
</HEAD><BODY>[ <A HREF="index.html">library(flatzinc)</A> | <A HREF="../../index.html">Reference Manual</A> | <A HREF="../../fullindex.html">Alphabetic Index</A> ]
<H1>struct zn_options(solver, fzn_tmp, parser, setup_prio, solutions, var_names)</H1>
Options for Mini/FlatZinc solving
<H2>Fields</H2><DL>
<DT><EM>solver</EM></DT>
<DD>
    	Determines which ECLiPSe solver(s) the FlatZinc variables and
	constraints get mapped to. The name is the name of a library
	implementing the mapping, e.g. fzn_ic, fzn_fd or fzn_eplex.
	The default is 'fzn_ic'.
</DD>
<DT><EM>fzn_tmp</EM></DT>
<DD>
	One of the atoms 'file' or 'pipe', determining if intermediate
	FlatZinc code is piped from the generator to the interpreter,
	or passed through an intermediate file. Default is 'file'.
</DD>
<DT><EM>parser</EM></DT>
<DD>
	One of the atoms 'strict' or 'fast', giving the choice between
	a stricter, but slower dedicated FlatZinc parser (in
	lib(flatzinc_parser)), or a faster parsing method (which
	detects less errors because it uses the normal, but
	reconfigured ECLiPSe parser).  Since FlatZinc input is
	normally automatically generated, the default is to use the
	faster and more permissive method 'fast'.
</DD>
<DT><EM>setup_prio</EM></DT>
<DD>
	The priority under which the constraint setup will be executed
	(see call_priority/2 and get_priority/1). Possible values are
	the ECLiPSe priorities 1 to 12, or 0 (the default) which stands
	for the current priority of the calling code.  A sensible value
	for this option is 2, which means that the setup code is executed
	under high priority (still allowing debug/visualisation goals).
	The effect of such a setting is that no propagation occurs until
	all constraints are fully set up, possibly leading to time savings.
</DD>
<DT><EM>solutions</EM></DT>
<DD>
	The maximum number of solutions computed (and possibly output).
	Only effective if no minimization/maximization is done.
	Only effective for toplevel predicates like fzn_run/mzn_run
	that are deterministic and do not succeed once per solution.
	Default is 1, zero means no limit.
</DD>
<DT><EM>var_names</EM></DT>
<DD>
	If this option is set to 'on', the ECLiPSe variables representing
	Zinc variables will be marked with their Zinc names, using the
	facilities of lib(var_name).  This is mainly useful for debugging.
	The default is 'off' to save space and time.
</DD>
</DL>
<H2>Description</H2>
<P>
	Used to specify options for Mini/FlatZinc solving.
    </P><P>
    	All predicates that accept the zn_options structure also accept
	the name of a solver mapping library alone. In this case, all
	other options take their default values.
    </P>
<H2>Examples</H2>
<PRE>
    ?- fzn_run("queens.fzn", fzn_ic).
    ?- fzn_run("queens.fzn", zn_options{solver:fzn_ic,solutions:3}).
    </PRE>
<H2>See Also</H2>
<A HREF="../../lib_public/flatzinc/fzn_run-1.html">fzn_run / 1</A>, <A HREF="../../lib_public/flatzinc/fzn_run-2.html">fzn_run / 2</A>, <A HREF="../../lib_public/flatzinc/fzn_run_stream-2.html">fzn_run_stream / 2</A>, <A HREF="../../lib_public/flatzinc/fzn_init-2.html">fzn_init / 2</A>
</BODY></HTML>
